package org.javasimon.callback.quantiles;

import org.javasimon.Stopwatch;

/**
 * Enumeration of buckets types, used for configuration purposes
 */
public enum BucketsType {
	LINEAR()
		{
			public Buckets createBuckets(Stopwatch stopwatch, long min, long max, int bucketNb) {
				return new LinearBuckets(min, max, bucketNb);
			}
		},
	EXPONENTIAL()
		{
			public Buckets createBuckets(Stopwatch stopwatch, long min, long max, int bucketNb) {
				return new ExponentialBuckets(min, max, bucketNb);
			}
		};

	/**
	 * Factory method to create a Buckets
	 */
	public abstract Buckets createBuckets(Stopwatch stopwatch, long min, long max, int bucketNb);
}
